Proxmox 宿主机网络“假死”修复记:一次由 Intel I219-V 网卡断流引发的排查实录
Proxmox 宿主机网络“假死”修复记:一次由 Intel I219-V 网卡断流引发的排查实录
背景
一台运行 Proxmox VE 的服务器,搭载 Intel I219-V 板载网卡(rev 11)。某日突然出现 所有虚拟机断网、宿主机 SSH 无法连接、路由器 ARP 表中找不到该设备 的严重故障,唯有物理重启才能临时恢复。
现象描述
- 故障时刻:5月29日 23:45 至 5月30日 00:04 期间持续出现网络中断。
- 故障表现:
- 宿主机 SSH 无法连接(
Connection timeout)。 - 所有运行在该宿主机上的虚拟机完全失去网络通信能力。
- 在路由器管理界面中,该 PVE 主机的 IP 对应的 ARP 条目消失,如同设备从网络中“物理拔出”。
- 物理重启后网络恢复正常,但一段时间后(尤其是在网络负载升高时)会再次发生。
- 宿主机 SSH 无法连接(
排查过程:锁定 Intel I219-V 网卡断流
1. 确认网卡型号
lspci | grep -i ethernet
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (17) I219-V (rev 11)
2. 检查内核日志中是否有典型的网卡驱动报错
dmesg -T | grep -iE "e1000e|watchdog|reset adapter|Hardware Unit Hang"
若故障发生且未重启时,典型报错为:
e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang
3. 查看网卡硬件卸载状态
ethtool -k nic0 | grep -E 'rx-checksumming|tx-checksumming|tso|gso|gro'
输出显示:
rx-checksumming: on
tx-checksumming: on
...
关键发现:硬件校验和卸载功能为开启状态。这正是导致 Intel I219-V 在高负载下“假死”的元凶。
问题根因:Intel I219-V 与 e1000e 驱动的兼容性缺陷
- 硬件层面:I219-V 网卡的硬件卸载引擎存在固件缺陷,在处理高负载、虚拟化环境的大流量时,其内部 DMA 状态机可能进入一种不可恢复的“挂起”状态。
- 驱动层面:Linux 内核中的
e1000e驱动未能妥善处理该异常,无法自动复位网卡,导致网卡彻底失效(数据包收发停止)。 - 触发条件:任何使网卡达到一定吞吐量的事件均可诱发,例如:
- 大量小包(如 SSH 暴力扫描)
- 虚拟机间大文件传输
- 启用了 TSO/GSO/checksum offloading 的混合流量
- 为什么表现为“路由器看不到设备”:网卡停止工作后,无法响应 ARP 请求,路由器的邻居表条目老化后无法刷新,自然将主机标记为离线。
该问题已被 Intel 工程师在
e1000e驱动代码注释中非正式承认,社区公认的解决方案就是 禁用网卡硬件卸载。
解决方案:永久禁用硬件卸载
临时修复(即刻生效)
ethtool -K nic0 rx-checksumming off tx-checksumming off tso off gso off gro off
此命令会立即关闭相关卸载功能,但重启后失效。
永久修复(推荐)
编辑 /etc/network/interfaces,在物理网卡 nic0 的配置段中添加 post-up 命令:
auto nic0
iface nic0 inet manual
post-up /usr/sbin/ethtool -K nic0 rx-checksumming off tx-checksumming off tso off gso off gro off
auto vmbr0
iface vmbr0 inet static
address 192.168.2.182/24
gateway 192.168.2.1
bridge-ports nic0
bridge-stp off
bridge-fd 0
注意:网卡名称可能为 enp0s31f6 或 nic0(如本例),请根据 ip link show 输出确认。
执行 reboot 重启后,再次验证:
ethtool -k nic0 | grep -E 'rx-checksumming|tx-checksumming'
现在应为 off。
验证与效果
- 重启后运行
ethtool -k nic0,确认所有卸载项为off。 - 进行高负载网络测试(如多虚拟机间 iperf3 测速),网络持续稳定。
- 即使再次遭遇 SSH 扫描或大流量传输,不再出现 ARP 消失或网络中断。
总结
| 阶段 | 结论 |
|---|---|
| 问题表象 | 全网络中断,路由器 ARP 丢失 |
| 真实根因 | Intel I219-V 硬件卸载缺陷 + e1000e 驱动处理不当 |
| 永久方案 | 禁用网卡校验和卸载及 TSO/GSO/GRO |
一句话经验:当你发现 Proxmox 主机在无任何硬件变更的情况下突然“失联”,且重启即可恢复,请首先检查网卡硬件卸载状态 —— 尤其是使用 Intel I21x 系列网卡时。
本文所有命令均在 Debian 12 / Proxmox VE 环境下验证通过。